package com.example.crazyfall;

import org.andengine.engine.Engine;
import org.andengine.engine.camera.Camera;
import org.andengine.entity.scene.Scene;
import org.andengine.opengl.vbo.VertexBufferObjectManager;

import android.app.Activity;

import com.example.crazyfall.SceneManager.SceneType;


//Esta clase se define como la clase abstracta con la cual se crearan todas las bases del juego

public abstract class BaseScene extends Scene {
	

	// 	Variables de la clase base
	
    protected Engine engine;
    protected ResorucesManager resourcesManager;
    protected VertexBufferObjectManager vbom;
    protected Camera camera;
    protected Activity activity;

    
  
    // Constructor base de cada escena
    
    public BaseScene()
    {
        this.resourcesManager = ResorucesManager.getInstance();
        this.engine = resourcesManager.engine;
        this.activity = resourcesManager.activity;
        this.vbom = resourcesManager.vbom;
        this.camera = resourcesManager.camera;
        createScene();
    }
    
   
    //Definicion del metodo abstracto para crear escena
    
    public abstract void createScene();
    
    //Definicion del metodo abstracto para cuando presionas la tecla de back en el celular

    public abstract void onBackKeyPressed();
   
    //Definicion del metodo abstracto para obtener el tipo de escena

    public abstract SceneType getSceneType();
  
    //Definicion del metodo abstracto para obtener la escena

    public abstract void disposeScene();


    

}
